Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Майкл_Сикорски,_Эндрю_Хониг_Вскрытие_покажет!_Практический_анализ.pdf
Скачиваний:
18
Добавлен:
19.04.2024
Размер:
17.17 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

w

 

 

to

 

 

78    Часть I  •  Базовый анализ

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Перехват пакетов с помощью Wireshark

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Wireshark — это открытый сниффер, инструмент для перехвата и записи сетевого трафика. Он поддерживает визуализацию, анализ сетевых потоков и углубленное исследование отдельных пакетов.

Подобно многим инструментам, описанным в этой книге, Wireshark может быть использован как во благо, так и во вред. С его помощью можно анализировать внутренние сети и их загруженность, отлаживать программные проблемы и изучать протоколы на практике. Однако эту утилиту можно также применять для перехвата паролей, разбора сетевых протоколов, хищения конфиденциальной информации и прослушивания онлайн-разговоров в местном кафе.

Как видно на рис. 3.10, Wireshark состоит из четырех элементов.

Поле ввода Filter (Фильтр) используется для фильтрации отображаемых пакетов.

Список пакетов выводит все пакеты, соответствующие заданному фильтру. На панели с подробностями отображается содержимое выбранного пакета

(в данном случае это пакет 47).

Нижняя панель выводит содержимое пакета в шестнадцатеричном виде. Она связана с панелью и выделяет любое поле, которое вы выберете.

Рис. 3.10. Пример анализа DNS и HTTP с помощью Wireshark

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Глава 3. Основы динамического анализа  

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

w79

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Чтобы просмотреть в Wireshark содержимое TCP-сессии, щелкните правой кнопкой мыши на TCP-пакете и выберите пункт Follow TCP Stream (Следить за TCPпотоком). Как можно видеть на рис. 3.11, обе стороны соединения выделяются разными цветами и выводятся в том порядке, в котором они участвуют в сессии.

Рис. 3.11. Окно отслеживания TCP-пoтока в Wireshark

Чтобы перехватить пакеты, щелкните на пункте меню Capture Interfaces (Захва­ тить Интерфейс) и выберите интерфейс, который хотите прослушивать. Вы можете захватывать все пакеты без разбора или применить фильтр.

ПРЕДУПРЕЖДЕНИЕ

Программа Wireshark известна своими многочисленными уязвимостями, поэтому убедитесь в том, что она выполняется в безопасной среде.

Wireshark может помочь вам разобраться в сетевом взаимодействии вредоноса, перехватывая его пакеты. Для этого необходимо подключиться к Интернету или симулировать интернет-соединение (в этом вам поможет Netcat), активизировать захват пакетов в Wireshark и запустить вредоносную программу.

Использование INetSim

INetSim — это бесплатный программный пакет на основе Linux, предназначенный для симуляции распространенных интернет-служб. Если в качестве основной операционной системы используется Microsoft Windows, INetSim проще всего запустить

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

w

 

 

to

 

 

80    Часть I  •  Базовый анализ

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

в виртуальной машине, подключенной к той же виртуальной сети, что и система для анализа безопасности.

INetSim является лучшим бесплатным инструментом для предоставления поддельных служб. Он позволяет анализировать сетевую активность неизвестных вредоносных образцов путем эмуляции серверов, работающих по протоколам HTTP, HTTPS, FTP, IRC, DNS, SMTP и т. д. В листинге 3.3 показан список всех служб, которые INetSim эмулирует по умолчанию. Этот список (вместе со стандартными портами) выводится при запуске данной программы.

Листинг 3.3. Службы, которые INetSim эмулирует по умолчанию

*dns 53/udp/tcp - started (PID 9992)

*http 80/tcp - started (PID 9993)

*https 443/tcp - started (PID 9994)

*smtp 25/tcp - started (PID 9995)

*irc 6667/tcp - started (PID 10002)

*smtps 465/tcp - started (PID 9996)

*ntp 123/udp - started (PID 10003)

*pop3 110/tcp - started (PID 9997)

*finger 79/tcp - started (PID 10004)

*syslog 514/udp - started (PID 10006)

*tftp 69/udp - started (PID 10001)

*pop3s 995/tcp - started (PID 9998)

*time 37/tcp - started (PID 10007)

*ftp 21/tcp - started (PID 9999)

*ident 113/tcp - started (PID 10005)

*time 37/udp - started (PID 10008)

*ftps 990/tcp - started (PID 10000)

*daytime 13/tcp - started (PID 10009)

*daytime 13/udp - started (PID 10010)

*echo 7/tcp - started (PID 10011)

*echo 7/udp - started (PID 10012)

*discard 9/udp - started (PID 10014)

*discard 9/tcp - started (PID 10013)

*quotd 17/tcp - started (PID 10015)

*quotd 17/udp - started (PID 10016)

*chargen 19/tcp - started (PID 10017)

*dummy 1/udp - started (PID 10020)

*chargen 19/udp - started (PID 10018)

*dummy 1/tcp - started (PID 10019)

Программа INetSim делает все возможное, чтобы выглядеть как настоящий сервер — для этого в ней предусмотрено множество настраиваемых функций. Например, если ее сканируют, она по умолчанию возвращает заголовок с названием веб-сервера Microsoft IIS.

Особенно полезны ее способности, связанные с симуляцией HTTP- и HTTPSслужб. Например, INetSim может вернуть любой запрошенный файл: если для продолжения работы вредоносный код должен получить на сайте JPEG-изображение, INetSim вернет корректный файл в этом формате. И хотя это может быть совсем не та картинка, которая запрашивалась, сервер не ответил кодом ошибки (например, 404), поэтому вредонос может продолжить работу.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Глава 3. Основы динамического анализа  

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

w81

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

INetSim может также записывать все входящие запросы и соединения. Это очень поможет, когда нужно определить, подключается ли вредонос к стандартной службе, или просмотреть выполняемые им запросы. Настройки этой утилиты очень гибкие. Например, если для продолжения работы вредоносу требуется получить определенную страницу, вы можете указать ее в качестве ответа на его запрос. Вы также можете изменить порт, на котором работает та или иная служба, что может пригодиться, если вредонос использует нестандартные порты.

Пакет INetSim разрабатывался с оглядкой на анализ зловредного ПО, поэтому он обладает множеством уникальных возможностей, таких как фиктивная служба, которая записывает все данные, полученные от клиента, независимо от порта. Эта функция отлично подходит для захвата всего клиентского трафика, посланного на порты, не привязанные ни к каким другим служебным модулям. С ее помощью можно прослушивать все порты, к которым подключается вредонос, и сохранять всю передаваемую им информацию. Это позволяет как минимум начать сеанс TCP и собрать дополнительные сведения.

Применение основных инструментов для динамического анализа

Все инструменты, описанные в данной главе, можно использовать совместно, чтобы максимизировать объем информации, полученной в результате динамического анализа. В этом разделе мы представим на их основе демонстрационную конфигурацию для анализа вредоносов. Для этого нужно будет выполнить следующие шаги.

1.Запустить procmon, установить фильтр с именем исполняемого файла и очистить все события, записанные ранее.

2.Запустить Process Explorer.

3.Сделать первый снимок реестра с помощью Regshot.

4.Настроить виртуальную сеть по своему вкусу, используя INetSim и ApateDNS.

5.Активизировать запись сетевого трафика с использованием Wireshark.

На рис. 3.12 показана схема виртуальной сети, которую можно использовать для анализа вредоносов. Она состоит из двух виртуальных машин: первая работает под управлением Windows и предназначена для выполнения анализа, а на второй запущены Linux и INetSim. Виртуальная машина с Linux прослушивает множество портов, включая HTTPS, FTP и HTTP. Гостевая система для анализа использует ApateDNS, чтобы прослушивать порт 53 и перехватывать DNS-запросы. DNS-сервер в системе Windows был сконфигурирован для локальной работы (127.0.0.1). Программа ApateDNS настроена для перенаправления запросов к виртуальной машине с Linux (192.168.117.169).

Если вы попытаетесь открыть веб-сайт в виртуальной машине с Windows, ApateDNS перехватит DNS-запрос и перенаправит вас к гостевой системе под управлением Linux. Затем браузер выполнит запрос GET по порту 80, который будет направлен серверу INetSim, прослушивающему этот порт.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

w

 

 

to

 

 

82    Часть I  •  Базовый анализ

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Рис. 3.12. Пример виртуальной сети

Посмотрим, как эта конфигурация работает на практике. Исследуем для этого вредонос msts.exe. Закончим начальную настройку и запустим msts.exe на виртуальной машине для анализа безопасности. Через какое-то время остановим захват событий в procmon и сделаем второй снимок с помощью Regshot. Начинаем анализировать следующим образом.

1.

Изучим окно ApateDNS, чтобы прове-

 

 

рить, не было ли выполнено каких-либо

 

 

DNS-запросов. Как видно на рис. 3.13, вредо­

 

 

нос запросил доменное имя www.malwareana­

 

 

lysisbook.com.

Рис. 3.13. Запрос

2.

Попробуем найти системные изменения

для www.malwareanalysisbook.com

 

в результатах procmon. На рис. 3.14 можно

в ApateDNS

видеть операции CreateFile и WriteFile

(порядковые номера 141 и 142) для файла C:\WINDOWS\system32\winhlp2.exe. В ходе дальнейшего исследования мы сравним файлы winhlp2.exe и msts.exe и обнаружим, что они идентичны. Делаем вывод, что вредонос скопировал себя по вышеупомянутому пути.

Рис. 3.14. Вывод procmon с фильтрацией по msts.exe

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Глава 3. Основы динамического анализа  

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

w83

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

3.Сравним два снимка, сделанных с помощью Regshot, чтобы найти изменения. Изучив результаты, представленные ниже, можно заметить, что вредонос прописал себя в ключе winhlp в ветке реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ Run, чтобы запускаться автоматически. Значением этого ключа будет путь, по которому вредонос себя скопировал (C:\WINDOWS\system32\winhlp2.exe). Этот новый двоичный файл будет загружаться при перезагрузке системы.

Values added:3

----------------------------------

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\winhlp: C:\WINDOWS\ system32\winhlp2.exe

4.Используем Process Explorer, чтобы изучить процесс и определить, создает ли он мьютексы и ожидает ли входящие подключения. На рис. 3.15 видно, что файл

msts.exe создает мьютекс с именем Evil1 . Мы подробно рассмотрим мьютексы в главе 7, но вы должны знать, что сделал он это для того, чтобы в системе одновременно мог выполняться лишь один экземпляр вредоноса. Мьютексы могут служить отличным признаком вредоносного кода, если они обладают достаточной уникальностью.

Рис. 3.15. Анализ активного процесса msts.exe с помощью Process Explorer